#ifndef GAMESCENE_H
#define GAMESCENE_H

#include <QtCore>
#include <QtGui>

#include "general.h"

class GameField;
class GamePanel;

class GameScene : public QGraphicsScene
{
    Q_OBJECT
public:
    GameScene(QObject *parent = 0);
    ~GameScene();

private:
    GameField * m_field;
    GamePanel * m_panel;

    qreal m_aspect;
    QRectF m_rGameField;

private slots:
    void onSceneRectChanged(const QRectF&);

    /**
    * Updates the elements to be drawn considering the Game state (paused or running).
    * @param p_pause if true the Game has been paused, if false the Game has been resumed
    * @param p_fromUser if true the Game has been paused due to an action from the user
    */
    void setPaused(const bool p_pause, const bool p_fromUser);

    void unitGone();

    void test();
    void test2();
};

#endif // GAMESCENE_H
